home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir26
/
epi601_3.zip
/
FILES11.EXE
/
PERSON.PGM
< prev
next >
Wrap
Text File
|
1994-08-22
|
9KB
|
240 lines
*================================== PERSON.PGM ===============================
* Executive Information System Demo: updating person data ...
*
* Epi Info program that reads communicable disease surveillance files,
* produces hypertext tables of disease by various demographics variables.
*
* READS : GEPIXX .REC x 2
* USES : PERSON .RPT
* GENERATES/UPDATES : PERSON .TXT
* PERSON .HLP
*
* LAST UPDATE 01/18/94 Denis Coulombier
*============================================================================
*=========================== GLOBAL SECTION =================================
SET IGNORE=OFF SPLIT=OFF DASH=OFF NOECHO = ON COLOR = 31 30 112
CLS
*--------------- Global variables declaration ------------------
DEFINE CURYEAR ## GLOB
DEFINE PREVYEAR ## GLOB
DEFINE NBWEEEK ## GLOB 52
IMMEDIATE CURYEAR = SYSTEMDATE[7,2]
IMMEDIATE PREVYEAR = CURYEAR -1
DEFINE WKTHISYEAR ## GLOB 52
DEFINE NBWEEK ## GLOB 52
DEFINE CURWEEK ## GLOB
* CURYEAR represents the current year.
* WKTHISYEAR is the number of MMWRWK in 94 (52). Some years may require 53.
* NBWEEK stands for the number of past weeks included in the report
* Change either values to customize
READ GEPI@CURYEAR GEPI@PREVYEAR
* Read 2 years of data to extract last 52 weeks.
DEFINE DUMMY ##
IF YR = CURYEAR THEN DUMMY = MMWRWK + WKTHISYEAR ELSE DUMMY = MMWRWK
* Start week number with 1st week of PREVYEAR and
* add WKTHISYEAR if year = CURYEAR
IF (YR=CURYEAR) AND (MMWRWK > CURWEEK) THEN CURWEEK = MMWRWK
* Takes the largest MMWRK of current week and stores it in CURWEEK
*--------------------------- Process week numbering -------------------------
GOTO PROG_SCR
ECHO
ECHO Current dataset: GEPI@CURYEAR, GEPI@PREVYEAR
ECHO
ECHO Calculating the last MMWRWK entered in 19@CURYEAR
ECHO and numbering past 52 weeks
ECHO
SET NOECHO=ON
PROCESS
CLS
* Equivalent of LIST /NOECHO in previous versions of Epi Info
SELECT
SELECT DUMMY >= (CURWEEK-NBWEEK)
RELATE EVENT DISEASES
* Get decent disease names
DEFINE AGEGRP _____
RECODE AGE TO AGEGRP 0-9="00·09", 10-14="10·14", 15-19="15·19", \
20-24="20·24", 25-29="25·29", 30-34="30·34", \
35-44="35·44", 45-98="45·UP", 99="Age·U"
IF AGE =. THEN AGEGRP = "Age·Un"
IF AGETYPE > "1" AND AGETYPE < "6" THEN AGEGRP = "00·09"
IF AGETYPE = "9" THEN AGEGRP = "Age·Un"
RELATE RACE RACECO
* get decent race labels
RECODE RACENAME "UNKNOWN",.="UNKNOWN"
RECODE RACE U,.=Ukn A=Asian B=Black N=Nativ O=Other W=White
DEFINE SEXNAME __________
RECODE SEX U,.="Sex·Un" M="Male" F="Female"
SELECT DISEASE <>.
* get decent sex labels for table
DEFINE VAR1 _______________
DEFINE VAR2 _______________
DEFINE VAR3 _______________
* Variable that are used in the generic PERSON.RPT
* See the #USES VAR1 VAR2 VAR3
* This allow to have one file for generating the table,
* to which different variables are passed
DEFINE VAR1NAME _______________ GLOB
DEFINE VAR2NAME _______________ GLOB
DEFINE VAR3NAME _______________ GLOB
* Label corresponding to the variables 1, 2, & 3
* Used for defining hypertext labesl allowing navigation from
* one table to another
DEFINE HEADTEXT ____________________ GLOB
* Header of the column in the table
ERASE PERSON.TXT
ROUTE PERSON.TXT
SET PAGE = 132,132
TYPE ".TOPIC INDEX\n\n"
TYPE "~This report displays tables of disease by age, sex and race. ~\n\n"
TYPE "It reflects data from the ~past 52 weeks~, ending with week ~@CURWEEK ~of ~19@CURYEAR ~\n"
TYPE "It was compiled on @SYSTEMDATE.\n\n"
TYPE "Select one highlighted set of tables:\n\n"
TYPE " « Disease by age, for each sex |SEX»\n\n"
TYPE " « Disease by sex, for each race |RACE»\n\n"
TYPE " « Disease by race, for each agegroup |AGEGROUP»\n\n"
TYPE " « Agegroup by sex for each disease |DISEASE»\n\n\n"
TYPE "You can print any table by pressing <F5> or copy any block to the clipboard\n"
TYPE "through the COPY command of the EDIT menu.\n"
* Header of the hyper text file
* Table for each Sex, Age by disease
VAR1 = SEX
IMMEDIATE VAR1NAME ="Sex"
VAR2 = AGEGRP
IMMEDIATE VAR2NAME ="Agegroup"
VAR3 = DISEASE
IMMEDIATE VAR3NAME ="Disease"
IMMEDIATE HEADTEXT ="Disease / Agegroup "
* Sets criteria for first table
GOTO PROG_SCR
ECHO Current dataset: GEPI@CURYEAR, GEPI@PREVYEAR
ECHO Generating:
ECHO
ECHO Table of @VAR3NAME by @VAR2NAME
ECHO Stratified on @VAR1NAME
ECHO ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
ECHO
SET NOECHO=ON
REPORT PERSON
* Run first table
* Table for each race, Sex by disease
VAR1 = RACENAME
IMMEDIATE VAR1NAME ="Race"
VAR2 = SEX
IMMEDIATE VAR2NAME ="Sex"
VAR3 = DISEASE
IMMEDIATE VAR3NAME ="Disease"
IMMEDIATE HEADTEXT ="Disease / Sex "
* Set criteria for second table
GOTO PROG_SCR
ECHO Current dataset: GEPI@CURYEAR, GEPI@PREVYEAR
ECHO Generating:
ECHO
ECHO Table of @VAR3NAME by @VAR2NAME
ECHO Stratified on @VAR1NAME
ECHO ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
ECHO
SET NOECHO=ON
REPORT PERSON
* Run second table
* Table for each disease, Sex by age
VAR1 = DISEASE
IMMEDIATE VAR1NAME ="Disease"
VAR2 = SEX
IMMEDIATE VAR2NAME ="Sex"
VAR3 = AGEGRP
IMMEDIATE VAR3NAME ="Agegroup"
IMMEDIATE HEADTEXT = "Agegroup / Sex "
* Set criteria for third table
GOTO PROG_SCR
ECHO Current dataset: GEPI@CURYEAR, GEPI@PREVYEAR
ECHO Generating:
ECHO
ECHO Table of @VAR3NAME by @VAR2NAME
ECHO Stratified on @VAR1NAME
ECHO ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
ECHO
SET NOECHO=ON
REPORT PERSON
* run third table
* Table for each disease, Sex by age
VAR1 = AGEGRP
IMMEDIATE VAR1NAME ="Agegroup"
VAR2 = RACE
IMMEDIATE VAR2NAME ="Race"
VAR3 = DISEASE
IMMEDIATE VAR3NAME ="Disease"
IMMEDIATE HEADTEXT = "Disease / Race "
* Set criteria for third table
GOTO PROG_SCR
ECHO Current dataset: GEPI@CURYEAR, GEPI@PREVYEAR
ECHO Generating:
ECHO
ECHO Table of @VAR3NAME by @VAR2NAME
ECHO Stratified on @VAR1NAME
ECHO ~Last @NBWEEK weeks, up to MMWR Week @CURWEEK of 19@CURYEAR.~
ECHO
SET NOECHO=ON
REPORT PERSON
* run fourth table
ROUTE SCREEN
READ STATUS
IF REPORTCODE = 2 THEN UPDATEDATE = SYSTEMDATE
IF REPORTCODE = 2 THEN UPDATETIME = SYSTEMTIME
ERASE ~.REC
ROUTE ~.REC
WRITE RECFILE REPORTNAME REPORTCODE UPDATEDATE UPDATETIME
ROUTE SCREEN
READ ~.REC
ERASE STATUS.REC
CLOSE ~.REC
RENAME ~.REC STATUS.REC
ERASE ~.REC
QUIT
*========================= Sub routine: PROG_SCR =============================
:PROG_SCR
CLS
SET NOECHO=OFF
ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓╔════════════════════════════════════════════════════════════════╗▓▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ N E T S S R E P O R T S ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓╠════════════════════════════════════════════════════════════════╣░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ » Please be patient ........ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ » Running report PERSON.PGM ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓║ ║░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓╚════════════════════════════════════════════════════════════════╝░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓
ECHO ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
ECHO ═══════════════════════════════════════════════════════════════════════════════
RETURN
*====================== End Sub routine: PROC_SCR ==========================